package com.test.hibernate.hql.dao;

import com.test.hibernate.hql.entity.Department;
import org.hibernate.Session;

/**
 * @author lzy
 * @version v1.0
 * Create DateTime: 2018/9/20 16:35
 */
public class DepartmentDao {

    public void save(Department department) {
        //内部获取Session对象
        //获取和当前线程绑定的Session对象
        //1.不需要从外部传入Session对象
        //2.多个DAO方法也可以使用同一事务
        Session session = HibernateUtils.getInstance().getSesssion();
        System.out.println(session.hashCode());
        session.save(department);
    }

    /**
     * 若需要传入一个Sessoion对象，则意味着上一层（Service）需要获取到Session对象
     * 这说明上一层需要和hibernate的API紧密耦合，所以不推荐使用此种方式
     *
     * @param session
     * @param department
     */
    public void save(Session session, Department department) {
        session.save(department);
    }
}
